/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO;

import Conexion.Conexion;
import VO.estudiante;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;

/**
 *
 * @author JesseniaJL
 */
public class EstudianteDAO 
{
Conexion con;
    public EstudianteDAO() throws Exception
    {
        con = new Conexion();
        con.ConexionPostgres();
    }
    
    public void registrar_estudiante(String documento_estudiante, String nombre_acudiente, 
                  String primer_nombre_estudiante, String segundo_nombre_estudiante, String primer_apellido_estudiante, 
                 String segundo_apellido_estudiante, String direccion_estudiante, String telefono_estudiante, 
                 String sexo_estudiante, String fecha_nacimiento_estudiante, String correo_estudiante, 
                 String password_estudiante, String municipio_nacimiento, String id_municipio, String id_tipo_documento,
                 String id_rol, String id_grupo) throws Exception // CREAR estudiante
    {   
        String msj="";
       
       //int id_estudiant=Integer.parseInt(id_estudiante);
       int id_grup=Integer.parseInt(id_grupo);
       int id_ro=Integer.parseInt(id_rol);
       int id_municipi=Integer.parseInt(id_municipio);
       int id_tipo_document=Integer.parseInt(id_tipo_documento);
              
       SimpleDateFormat sdf= new SimpleDateFormat("dd-MM-yyyy");
       java.util.Date fecha=sdf.parse(fecha_nacimiento_estudiante);
       System.out.println("pri: "+fecha); 
        
       
        String sql="select * from estudiante where documento_estudiante='"+documento_estudiante+"'";
   
        ResultSet rs = con.consultar(sql);
        
        if(!rs.next())
        {
          String consulta = "insert into estudiante (documento_estudiante, nombre_acudiente, "
                  + "primer_nombre_estudiante, segundo_nombre_estudiante, primer_apellido_estudiante, "
                  + "segundo_apellido_estudiante, direccion_estudiante, telefono_estudiante, sexo_estudiante,"
                  + "fecha_nacimiento_estudiante, correo_estudiante, password_estudiante, municipio_nacimiento, "
                  + "id_municipio, id_tipo_documento, id_rol, id_grupo) "
                  + "values('"+documento_estudiante+"','"+nombre_acudiente
                  +"','"+primer_nombre_estudiante+"','"+segundo_nombre_estudiante+"','"+primer_apellido_estudiante
                  +"','"+segundo_apellido_estudiante+"','"+direccion_estudiante+"','"+telefono_estudiante
                  +"','"+sexo_estudiante
                  +"','"+fecha+"','"+correo_estudiante+"','"+password_estudiante+"','"+municipio_nacimiento
                  +"','"+id_municipi+"','"+id_tipo_document+"','"+id_ro
                  +"','"+id_grup+"')";
          con.actualizar(consulta);
          msj="ESTUDIANTE CREADO";
        }
        else
        {
            msj="YA EXISTE UN ESTUDIANTE CON ESTE DOCUMENTO";
        }
        System.out.println(msj);
    }
    
    public ArrayList Consultar_Estudiante(String cod) throws SQLException, ParseException
    {
        ArrayList lista = new ArrayList();
        estudiante est = null;
        
        String query = "select * from estudiante where documento_estudiante='" + cod + "'";

        ResultSet rsu = con.consultar(query);
        while (rsu.next()) 
        {
                est = new estudiante();
                
                est.setid_estudiante(rsu.getString("id_estudiante"));
                est.setdocumento_estudiante(rsu.getString("documento_estudiante"));
                est.setnombre_acudiente(rsu.getString("nombre_acudiente"));
                est.setprimer_nombre_estudiante(rsu.getString("primer_nombre_estudiante"));
                est.setsegundo_nombre_estudiante(rsu.getString("segundo_nombre_estudiante"));
                est.setprimer_apellido_estudiante(rsu.getString("primer_apellido_estudiante"));
                est.setsegundo_apellido_estudiante(rsu.getString("segundo_apellido_estudiante"));
                est.setdireccion_estudiante(rsu.getString("direccion_estudiante"));
                est.settelefono_estudiante(rsu.getString("telefono_estudiante"));
                est.setsexo_estudiante(rsu.getString("sexo_estudiante"));
                est.setfecha_nacimiento_estudiante(rsu.getString("fecha_nacimiento_estudiante"));
                est.setcorreo_estudiante(rsu.getString("correo_estudiante"));
                est.setpassword_estudiante(rsu.getString("password_estudiante"));
                est.setmunicipio_nacimiento(rsu.getString("municipio_nacimiento"));
                est.setid_municipio(rsu.getString("id_municipio"));
                est.setid_tipo_documento(rsu.getString("id_tipo_documento"));
                est.setid_rol(rsu.getString("id_rol"));
                est.setestado(rsu.getString("estado"));
                est.setid_grupo(rsu.getString("id_grupo"));

                lista.add(est);

         }
        return lista;
    }
    
    public ArrayList Consultar_Estudiante() throws SQLException, ParseException
    {
        ArrayList lista = new ArrayList();
        estudiante est = null;
        
        String query = "SELECT *  FROM estudiante order by id_estudiante ASC";

        ResultSet rsu = con.consultar(query);
        while (rsu.next()) 
        {
                est = new estudiante();
                
                est.setid_estudiante(rsu.getString("id_estudiante"));
                est.setdocumento_estudiante(rsu.getString("documento_estudiante"));
                est.setnombre_acudiente(rsu.getString("nombre_acudiente"));
                est.setprimer_nombre_estudiante(rsu.getString("primer_nombre_estudiante"));
                est.setsegundo_nombre_estudiante(rsu.getString("segundo_nombre_estudiante"));
                est.setprimer_apellido_estudiante(rsu.getString("primer_apellido_estudiante"));
                est.setsegundo_apellido_estudiante(rsu.getString("segundo_apellido_estudiante"));
                est.setdireccion_estudiante(rsu.getString("direccion_estudiante"));
                est.settelefono_estudiante(rsu.getString("telefono_estudiante"));
                est.setsexo_estudiante(rsu.getString("sexo_estudiante"));
                est.setfecha_nacimiento_estudiante(rsu.getString("fecha_nacimiento_estudiante"));
                est.setcorreo_estudiante(rsu.getString("correo_estudiante"));
                est.setpassword_estudiante(rsu.getString("password_estudiante"));
                est.setmunicipio_nacimiento(rsu.getString("municipio_nacimiento"));
                est.setid_municipio(rsu.getString("id_municipio"));
                est.setid_tipo_documento(rsu.getString("id_tipo_documento"));
                est.setid_rol(rsu.getString("id_rol"));
                est.setestado(rsu.getString("estado"));
                est.setid_grupo(rsu.getString("id_grupo"));

                lista.add(est);

         }
        return lista;
    }
    
    
    public ArrayList Login_estudiante(String documento_estudiante,String password_estudiante) throws SQLException, ParseException
    {
        ArrayList lista = new ArrayList();
        estudiante est = null;
        
        String query = "SELECT *  FROM estudiante WHERE documento_estudiante= '"+documento_estudiante+"'  AND password_estudiante='"+password_estudiante+"' LIMIT 1";

        ResultSet rsu = con.consultar(query);
        while (rsu.next()) 
        {
                est = new estudiante();
                
                est.setid_estudiante(rsu.getString("id_estudiante"));
                est.setdocumento_estudiante(rsu.getString("documento_estudiante"));
                est.setnombre_acudiente(rsu.getString("nombre_acudiente"));
                est.setprimer_nombre_estudiante(rsu.getString("primer_nombre_estudiante"));
                est.setsegundo_nombre_estudiante(rsu.getString("segundo_nombre_estudiante"));
                est.setprimer_apellido_estudiante(rsu.getString("primer_apellido_estudiante"));
                est.setsegundo_apellido_estudiante(rsu.getString("segundo_apellido_estudiante"));
                est.setdireccion_estudiante(rsu.getString("direccion_estudiante"));
                est.settelefono_estudiante(rsu.getString("telefono_estudiante"));
                est.setsexo_estudiante(rsu.getString("sexo_estudiante"));
                est.setfecha_nacimiento_estudiante(rsu.getString("fecha_nacimiento_estudiante"));
                est.setcorreo_estudiante(rsu.getString("correo_estudiante"));
                est.setpassword_estudiante(rsu.getString("password_estudiante"));
                est.setmunicipio_nacimiento(rsu.getString("municipio_nacimiento"));
                est.setid_municipio(rsu.getString("id_municipio"));
                est.setid_tipo_documento(rsu.getString("id_tipo_documento"));
                est.setid_rol(rsu.getString("id_rol"));
                est.setestado(rsu.getString("estado"));
                est.setid_grupo(rsu.getString("id_grupo"));

                lista.add(est);

         }
        return lista;
    }
    
    public String Listar_Estudiantes(String id_grupo) throws SQLException, ParseException
    {
        String datos="";
        String where="id_grupo="+id_grupo;
        if(id_grupo.equals("0") || id_grupo.equals(null)){  where="id_grupo>0";   }
        
        String query = "SELECT (primer_nombre_estudiante || ' '|| segundo_nombre_estudiante) as Nombres,(primer_apellido_estudiante ||  ' ' ||segundo_apellido_estudiante )   as Apellidos,sexo_estudiante as sexo,documento_estudiante as Documento, telefono_estudiante as Telefono ,fecha_nacimiento_estudiante as Fecha_Nacimiento,id_grupo as grupo  FROM estudiante WHERE "+where+" order by id_estudiante ASC";

        ResultSet rsu = con.consultar(query);
        ResultSetMetaData rsm = rsu.getMetaData();
        
        
        datos+="<table class=\"table-bordered table-condensed span12\">";
        
        datos+="<tr>";
        for(int i=1;i<=rsm.getColumnCount();i++){
            datos+="<th>"+rsm.getColumnName(i)+"</th>";
        }
        datos+="</tr>";

        while(rsu.next()){

            datos+="<tr>";
            for(int i=1;i<=rsm.getColumnCount();i++){
               
                  datos+="<td>"+rsu.getString(i)+"</td>";
            }
             datos+="<td><a href='#' class='btn btn-info btn-small'>Ver</a></td>";
            datos+="</tr>";
           
        }

        datos+="</table>";
        
        return datos;

    }
    
    
    
    
   
    
}
